home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagg_m.zip
/
GRAPHICS.SWG
/
0152_Gravity.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-03-03
|
1KB
|
41 lines
{
JM> ex. pixel in screen is x = 160, y = 100 and ground level = 190.
JM> Then that pixel has to drop down like a gravity affect to
JM> pixel.. then it would look that there were an gravity..
>--- cut here
}
program cannonball;
uses crt;
const vidseg:word=$a000; g=-9.81; x0=0; y0=100; v0=50; phi=50; dt=0.1;
var t:real; px,py,xt,yt,v:integer;
procedure retrace; assembler; asm
mov dx,03dah; @vert1: in al,dx; test al,8; jnz @vert1
@vert2: in al,dx; test al,8; jz @vert2; end;
function rad(alpha:integer):real; begin
rad:=(alpha/180)*pi; end;
begin
asm mov ax,13h; int 10h; end;
px:=0; py:=0;
t:=0; v:=v0; yt:=1;
while (not keypressed) and (yt>=0) do begin
retrace;
mem[vidseg:(199-py)*320+px]:=0;
xt:=x0+round(v0*cos(rad(phi))*t);
yt:=y0+round(v*sin(rad(phi))*t+0.5*g*t*t);
mem[vidseg:(199-yt)*320+xt]:=15;
px:=xt; py:=yt;
t:=t+dt;
end;
while keypressed do readkey;
while not keypressed do;
textmode(lastmode);
end.
>--- cut here
This is the only correct physical approuch (I should know, I study Physics).